package main

import"fmt"

// 	//键(key)   值（value）
// 	//学号     姓名
// 	//"2001"   张三
// 	//"2002"   王五

// func main(){
// 	//定义map
// 	var a map[int]string   //变量a是一个映射，这个映射里的数据的键为int，值为string
// 	//只声明map内存是没有分配空间
// 	//必须通过make函数进行初始化，才会分配空间

// }


func main()  {
	// //映射的增删改查
	// a := make(map[int]string,10)
	// //增加
	// a[2001] = "张三"
	// a[2002] = "王五"
	// fmt.Println(a)
	// //修改；
	// a[2001] = "张飞"
	// fmt.Println(a)
	// //增加和修改格式是一样的：是通过key是否存在来判断，如果key存在，那就修改，如果key不存在，那就增加
	
	// //删除：
	// delete(a,2002)    //删除a中为2002的数据
	// fmt.Println(a)

	// //查找：
	// value,flag := a[2001]   //查找a中是否存在键为2001的数据。如果存在，将它对应的值返回给value,flag返回true：如果不存在，value就返回空，flag返回false
	// fmt.Println("value:",value)
	// fmt.Println("flag:",flag)
	// fmt.Println("-------------------------------------------")
	// a[2002] = "刘备"
	// a[2003] = "关羽"

	// //作业：遍历 for range
	// for key,value := range a {
	// 	fmt.Printf("学号：%v ,名字：%v \n",key,value)
	// }

	// //a := make(map[int]string,10)     //键为int类型。值为string
	// b := make(map[string]map[int]string,10)   //键为string，值是一个键为int，值为string类型的映射
	// b["班级1"] = make(map[int]string,10)
	// b["班级1"][2001] = "刘备"
	// b["班级1"][2002] = "孙尚香"
	// b["班级2"] = make(map[int]string,10)
	// b["班级2"][2001] = "吕布"
	// b["班级2"][2002] = "貂蝉"
	// // fmt.Println(b)

	// //使用for range 遍历b
	// // for stra,key,value := range a,b {
	// // 	fmt.Printf("班级：%v,学号：%v ,名字：%v \n",stra,key,value)
	// // }
	// fmt.Println("-------------------------------------------")
	// for i, row := range b { // 外层循环遍历行
    //     for j, value := range row { // 内层循环遍历列
    //         fmt.Printf("%v,学号：%v ,名字：%v \n", i, j, value)
    //     }
    // }



	//作业
	slice1 := [] int {1,2,3,4,5}
	fmt.Println(slice1)
	//打印切片的类型    []int
	fmt.Printf("%T \n",slice1)
	slice1 = append(slice1,6,7)  //往slice1后面追加6和7
	fmt.Println(len(slice1))
	for i := 0 ; i <len(slice1) ; i++{
		fmt.Print("\n 切片的值为： ",slice1[i])
	}
	fmt.Print()
}
